package pe.gob.onpe.struts.action;

import java.util.Date;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

import pe.gob.onpe.ctrlNegocio.CNEjecutarJornadaElectoral;
import pe.gob.onpe.pojo.CierreVotacionPojo;
import pe.gob.onpe.pojo.ParametroPojo;
import pe.gob.onpe.pojo.UsuarioPojo;
import pe.gob.onpe.util.PARAMETROS;
import pe.gob.onpe.util.ServiceLocator;


public class CerrarAccesoAVotacionAction extends DispatchAction{
	
	private CNEjecutarJornadaElectoral oCNEjecutarJornadaElectoral = (CNEjecutarJornadaElectoral)ServiceLocator.getInstance().getLocal(PARAMETROS.CNEjecutarJornadaElectoral);
	
	
	public ActionForward mostrarCerrarAccesoAVotacion(	
			ActionMapping mapping, 
			ActionForm form,
			HttpServletRequest request, 
			HttpServletResponse response) throws Exception {

		System.out.println("mostrarCerrarAccesoAVotacion");
		
		return mapping.findForward("mostrarCerrarAccesoAVotacion");
	}
	
	public ActionForward confirmarCierreAccesoAVotacion(	
			ActionMapping mapping, 
			ActionForm form,
			HttpServletRequest request, 
			HttpServletResponse response) throws Exception {

		System.out.println("confirmarCierreAccesoAVotacion");
		
		List<ParametroPojo> listaTiposCierre = oCNEjecutarJornadaElectoral.obtenerTiposCierre();
		
		request.setAttribute("listaTiposCierre", listaTiposCierre);
		
		return mapping.findForward("confirmarCierreAccesoAVotacion");
	}
	
	public ActionForward mostrarProcesoCierreVotacion(	
			ActionMapping mapping, 
			ActionForm form,
			HttpServletRequest request, 
			HttpServletResponse response) throws Exception {

		System.out.println("mostrarProcesoCierreVotacion");
		
		String tipoCierre = request.getParameter("tiposCierre");
		String login = request.getParameter("usuario");
		String contrasena = request.getParameter("clave"); 
		String motivo = request.getParameter("motivo");
		
		String mensaje = "";
		
		UsuarioPojo oUsuario = oCNEjecutarJornadaElectoral.validarUsuario(login, contrasena);
		
		if(oUsuario != null) {
			
			CierreVotacionPojo oCierreVotacionPojo = new CierreVotacionPojo();
			
			oCierreVotacionPojo.setMotivo(motivo);
			oCierreVotacionPojo.setUsuario(login);
			oCierreVotacionPojo.setTipoCierre(Long.parseLong(tipoCierre));
			oCierreVotacionPojo.setFechaCierre(new Date());
			
			oCNEjecutarJornadaElectoral.registraCierreVotacion(oCierreVotacionPojo);
			
		} else {
			
			mensaje = "El usuario no existe";
			
		}
		
		request.setAttribute("mensaje", mensaje);
		
		return mapping.findForward("mostrarProcesoCierreVotacion");
	}
	
	public ActionForward mostrarActaCierreVotacion(	
			ActionMapping mapping, 
			ActionForm form,
			HttpServletRequest request, 
			HttpServletResponse response) throws Exception {

		System.out.println("mostrarActaCierreVotacion");
		
		return mapping.findForward("mostrarActaCierreVotacion");
	}
}
